
public class Forca {
	
	public static final int MAX_ERROS = 6;
	private int numAcertos;
	private int maxAcertos;
	private int numErros;

	private String letrasAcertadas = "";
	private CharSequence palavraSecreta;
	private boolean[] arrayBoolean;
	//testando as diferenças
	public Forca(String palavraSecreta){
		
		this.letrasAcertadas = "";
		this.palavraSecreta = palavraSecreta;
		this.maxAcertos = palavraSecreta.length()-1;
		this.numAcertos = 0;
		this.numErros = 0;
		this.arrayBoolean = new boolean[palavraSecreta.length()];
		
		for (int i = 0; i < palavraSecreta.length(); i++) {
			this.arrayBoolean[i] = false;
		}
		
	}
	
	public int getNumErros() {
		return numErros;
	}
	public void acertou(char letra){
		boolean contains = false;
		
		for (int i = 0; i < letrasAcertadas.length(); i++) {
			if (letra == letrasAcertadas.charAt(i)) {
				contains = true;
			}
		}
		if (contains) {
			System.out.println("Voce ja chutou esta letra");
		} else {
			this.numAcertos += getOcorrencias(letra);
			this.letrasAcertadas += letra;
			
			for (int i = 0; i < arrayBoolean.length; i++) {
				if (palavraSecreta.charAt(i) == letra) {
					arrayBoolean[i] = true;
				}
				if (arrayBoolean[i]) {
					System.out.print(palavraSecreta.charAt(i));				
				} else {
					System.out.print("_");
				}
			}
			System.out.println("Parabens, voce acertou!");
		}
	}
	
	public void errou(){
		this.numErros++;
		exibe(getNumErros());
		
		// TODO atualiza boneco
	}
	
	public String getLetrasAcertadas() {
		return letrasAcertadas;
	}

	public CharSequence getPalavraSecreta() {
		return palavraSecreta;
	}

	public void setPalavraSecreta(CharSequence palavraSecreta) {
		this.palavraSecreta = palavraSecreta;
	}

	public int getNumAcertos() {
		return numAcertos;
	}

	public int getMaxAcertos() {
		return maxAcertos;
	}

	private int getOcorrencias(char letra){
		int numOcorrencias = 0;
		
		for (int i = 0; i < palavraSecreta.length(); i++) {
			if (letra == palavraSecreta.charAt(i)) {
				numOcorrencias++;
				
			}
		}
		return numOcorrencias;
	}
	

	public boolean[] getArrayBoolean() {
		return arrayBoolean;
	}
	
	private void exibe(int erros) {
		switch(erros){
		
			case 0: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
					
			case 1: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" | O");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
			
			case 2: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" | O");
					System.out.println(" | |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
			case 3: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" | O");
					System.out.println(" |/|");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
			case 4: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" | O");
					System.out.println(" |/|\\");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
			case 5: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" | O");
					System.out.println(" |/|\\");
					System.out.println(" |/");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
			case 6: System.out.println(" ---");
					System.out.println(" | |");
					System.out.println(" | O");
					System.out.println(" |/|\\");
					System.out.println(" |/ \\");
					System.out.println(" |");
					System.out.println(" |");
					System.out.println("---");
					break;
			}

}}
